package cloud.maque.admin.service;

import cloud.maque.admin.domain.entity.MqUser;
import cloud.maque.admin.domain.vo.MqCreateUserModel;
import cloud.maque.admin.domain.vo.UserUpdatePwd;
import cloud.maque.admin.domain.vo.UserVo;
import cloud.maque.framework.common.request.PaginateDataResquest;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 用户管理
 */
public interface MqUserService extends IService<MqUser> {

    /**
     * 根据ID获取用户
     */
    MqUser getUser(String userId);

    MqCreateUserModel saveUser(MqCreateUserModel user);

    MqCreateUserModel saveBySuperManager(MqCreateUserModel user);

    /**
     * 获取用户的所有信息
     *
     * @param userId
     * @return
     */
    MqCreateUserModel getUserAllInfo(String userId);

    MqUser getUserByEmail(String email);

    /**
     * 用户名的组成：租户ID+注册用户名
     *
     * @param userName
     * @return
     */
    MqUser getUserByUserName(String userName);

    MqUser getUserByMobile(String mobile);

    /**
     * 分页查询
     */
    PageInfo<MqUser> pageList(PaginateDataResquest<UserVo> queryRequest);

    /**
     * 物理删除
     */
    Boolean delete(String id, String tenantId);


    Boolean UpdatePwd(UserUpdatePwd userUpdatePwd);

    Boolean ChangeState(String userId);


    List<List<String>> getUserRoleTree(String userId);

}
